package com.sromku.simple.fb.example;
import android.graphics.Color;
import android.text.Html;
import android.util.TypedValue;
import android.view.Gravity;
import android.view.View;
import android.view.ViewGroup;
import android.widget.AbsListView.LayoutParams;
import android.widget.BaseAdapter;
import android.widget.TextView;
import com.sromku.simple.fb.example.utils.SharedObjects;
import java.util.HashSet;
import java.util.List;
import java.util.Set;
public class ExamplesAdapter extends BaseAdapter {
private static final int TITLE_VIEW = 0;
private static final int EXAMPLE_VIEW = 1;
private final List<Example> mExamples;
private final Set<Integer> mTitles;
private boolean mLoggedIn;
public ExamplesAdapter(List<Example> examples) {
mExamples = examples;
mTitles = new HashSet<Integer>();
for (int position = 0; position < examples.size(); position++) {
if (examples.get(position).getFragment() == null) {
mTitles.add(position);
}
}
}
@Override
public int getCount() {
return mExamples.size();
}
@Override
public Object getItem(int position) {
return mExamples.get(position);
}
@Override
public long getItemId(int position) {
return position;
}
@Override
public int getViewTypeCount() {
return 2;
}
@Override
public int getItemViewType(int position) {
if (mTitles.contains(position)) {
return TITLE_VIEW;
}
return EXAMPLE_VIEW;
}
@Override
public boolean isEnabled(int position) {
if (getItemViewType(position) == TITLE_VIEW) {
return false;
}
if (!mLoggedIn && mExamples.get(position).isRequireLogin()) {
return false;
}
return super.isEnabled(position);
}
@Override
public View getView(int position, View view, ViewGroup group) {
if (view == null) {
TextView textView = new TextView(SharedObjects.context);
textView.setLayoutParams(new LayoutParams(LayoutParams.MATCH_PARENT, SharedObjects.context.getResources().getDimensionPixelSize(R.dimen.example_list_height)));
textView.setTextColor(SharedObjects.context.getResources().getColor(R.color.black));
textView.setSingleLine();
if (getItemViewType(position) == EXAMPLE_VIEW) {
textView.setTextSize(TypedValue.COMPLEX_UNIT_PX, SharedObjects.context.getResources().getDimensionPixelSize(R.dimen.example_list_text_size));
} else {
textView.setTextSize(TypedValue.COMPLEX_UNIT_PX, SharedObjects.context.getResources().getDimensionPixelSize(R.dimen.example_list_title_size));
}
textView.setGravity(Gravity.LEFT | Gravity.CENTER_VERTICAL);
int pix10dp = SharedObjects.context.getResources().getDimensionPixelSize(R.dimen.padding_10dp);
textView.setPadding(pix10dp, 0, pix10dp, 0);
view = textView;
}
Example example = mExamples.get(position);
TextView textView = (TextView) view;
if (getItemViewType(position) == EXAMPLE_VIEW) {
textView.setText(Html.fromHtml(" \u25B6 " + example.getTitle()));
} else {
textView.setText(Html.fromHtml(example.getTitle()));
}
if (mLoggedIn || (!mLoggedIn && !example.isRequireLogin())) {
textView.setTextColor(Color.BLACK);
textView.setEnabled(true);
} else {
textView.setTextColor(Color.GRAY);
textView.setEnabled(false);
}
return view;
}
public void setLogged(boolean logged) {
mLoggedIn = logged;
notifyDataSetChanged();
}
}